namespace hjc {

	/** components **/
	export interface UIComponent {
		/** 设置可见性 */
		setVisible(visible: boolean): UIComponent;
		/** 设置透明度 */
		setAlpha(alpha: number): UIComponent;
		/** 设置是否包含在布局中 */
		setInLayout(inlayout: boolean): UIComponent;
		/** 设置有效性 */
		setEnabled(enabled: boolean): UIComponent;
	}
	export interface ITextual {
		/** 文字内容 */
		text: string;
		/** 无效文字内容 */
		textDisabled: string;
		/** 文字颜色 */
		textColor: number;
		/** 无效文字颜色 */
		textColorDisabled: number;
		/** 文字大小 */
		textSize: number;
		/** 设置文字参数 */
		setText(text: string, params?: TText): UIComponent;
		/** 设置文本对齐方式 */
		setTextVertial(vertical: boolean): UIComponent;
	}
	export interface ITextural {
		/** 背景图片 */
		bg: string;
		/** 无效时背景图片 */
		bgDisabled: string;
		/** 设置背景图片参数 */
		setBg?(source: string, s9grids?: hjc.S9GridsOpitons, bgDisabled?: string, bgDown?: string): hjc.UIComponent;
		/** 设置背景图片九宫格 */
		setBgS9grids?(s9grids: hjc.S9GridsOpitons): hjc.UIComponent;
	}
	export interface ITouchable {
		/** 点击效果模式 */
		clickMode: hjc.ClickMode;
		/** 按下背景图片 */
		bgDown?: string;
		/** 按下文字内容 */
		textDown?: string;
		/** 按下文字颜色 */
		textColorDown?: number;
		/** 按下时声音 */
		sound?: string;
		/** 设置点击回调事件 */
		setClicked(clicked: Function, context?: any, ): UIComponent;
		/** 设置按下回调事件 */
		setPressed?(pressed: Function): UIComponent;
		/** 设置移动回调事件 */
		setMoved?(moved: Function): UIComponent;
	}

	/** manangers **/
	export interface IDispacher {
		handler(msg: string | egret.ByteArray): void
	}
	export declare type DispacherClass = { new (): IDispacher; };
	export declare const IDispacher: DispacherClass;
}
